Add meeting session timing tracking and signaling#3168
Conversation
| "build": "npm run deps && npm install && tsc --noEmit && npm run build:fast", | ||
| "start:fast": "node dev-server.js", | ||
| "start:watch": "WATCH_SDK=true node dev-server.js", | ||
| "start:sdk-autorefresh": "SDK_AUTOREFRESH=true node dev-server.js", |
There was a problem hiding this comment.
unrelated change
| VIDEO_DISCARDED_PPS = 47; | ||
| VIDEO_PLIS_SENT = 48; | ||
| VIDEO_RECEIVED_JITTER_MS = 49; | ||
| VIDEO_LOCAL_RENDER_FPS = 52; |
There was a problem hiding this comment.
Couldn't end up getting local render FPS working unfortunately (since most apps do not bind the local tile) but just leaving it for the future.
| # Just so the devs can see. | ||
| puts 'Auditing development dependencies. You should address any findings.' | ||
| system('npm audit --omit=prod') | ||
| system('npm audit --include=dev') |
There was a problem hiding this comment.
unrelated change
| "moduleResolution": "node", | ||
| "outDir": "../build", | ||
| "rootDir": "../src" | ||
| "outDir": "../build/mediatransformworker", |
There was a problem hiding this comment.
unrelated change
| direction: 'send' | 'receive', | ||
| ssrc: number | ||
| ): void { | ||
| if (mediaType === 'audio' && direction === 'receive') { |
There was a problem hiding this comment.
nit: I feel it might be logically easier to follow like
if (mediaType === 'audio') {
if (direction === 'receive') {
} else if (direction === 'send') {
}
} else if (mediaType === 'video') {
if (direction === 'receive') {
} else if (direction === 'send') {
}
}
| export interface MeetingSessionRemoteAudioTiming { | ||
| addedMs?: number; | ||
| firstPacketReceivedMs?: number; | ||
| firstFrameRenderedMs?: number; |
There was a problem hiding this comment.
Why isn't this hooked up in MeetingSessionTimingManager?
There was a problem hiding this comment.
These match the signaling protocol but I have not wired up to anything on the web. I'll remove or put a comment.
| */ | ||
| export interface MeetingSessionLocalAudioTiming { | ||
| addedMs?: number; | ||
| firstFrameCapturedMs?: number; |
There was a problem hiding this comment.
Same question as above
| */ | ||
| export interface MeetingSessionLocalVideoTiming { | ||
| addedMs?: number; | ||
| firstFrameCapturedMs?: number; |
There was a problem hiding this comment.
Same question as above
Issue #: None
Description of changes:
SubscribeAndReceiveSubscribeAckTask now emit timing events
Testing:
Confirmed all expected timestamps are sent to backend, which is able to process them.
Can these tested using a demo application? Please provide reproducible step-by-step instructions.
N/A
Checklist:
Have you successfully run
npm run build:releaselocally?y
Do you add, modify, or delete public API definitions? If yes, has that been reviewed and approved?
n
Do you change the wire protocol, e.g. the request method? If yes, has that been reviewed and approved?
n
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.